package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

// 获取文件中指定单词的格式
func getTxtWordCount(txtName string, word string) int {
	num := 0
	f, err := os.OpenFile(txtName, os.O_RDWR, 6)
	if err != nil {
		return num
	}
	defer f.Close()

	reader := bufio.NewReader(f)
	// 循环读取并计算
	for {
		buf, err := reader.ReadBytes('\n')
		if err != nil {
			break
		}
		sTemp := strings.TrimSpace(string(buf))
		// 注意处理掉换行符, 否则无法正常转换
		for _, v := range strings.Split(sTemp, " ") {
			if v == word {
				num++
			}
		}
	}
	return num
}
func main() {
	var path string = "test"
	f, err := os.OpenFile(path, os.O_RDONLY, os.ModeDir)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer f.Close()

	// 读取目录
	info, err := f.Readdir(-1)
	if err != nil {
		fmt.Println(err)
		return
	}
	wordCount := 0
	// 遍历返回的切片
	for _, fileInfo := range info {
		if !fileInfo.IsDir() {
			// 判断后缀
			if strings.HasSuffix(fileInfo.Name(), ".txt") {
				// 读文件
				num := getTxtWordCount("test\\"+fileInfo.Name(), "love")
				wordCount += num
			}
		}
	}
	fmt.Println(wordCount)
}
